package com.sysware.p2m.oracleclient.mapper;

import org.apache.ibatis.annotations.Param;

import java.util.HashMap;
import java.util.List;

public interface DBUserMapper {

	/**
	 * 获取用户数据库角色
	 * @param userName
	 * @return
	 */
	List<String> getUserDBRoles(String userName);

	/**
	 * 创建数据库用户
	 * @param userName
	 * @param passWord
	 * @param tableSpaceName
	 */
	void createUnlockUserWithTablespace(@Param("userName") String userName,@Param("passWord") String passWord,@Param("tableSpaceName") String tableSpaceName);

	/**
	 * 给用户赋予权限
	 * @param userName
	 * @param roleList
	 */
	void grantUserDBRoles(@Param("userName") String userName, @Param("roleList") String[] roleList);
	
	/**
	 * 删除用户权限
	 * @param params {roleList, userName}
	 */
	void revokeUserDBRoles(HashMap<String, Object> params);
	
	/**
	 * 级联删除用户
	 * @param userName
	 */
	void dropUserCascade(String userName);
	
	/**
	 * 查询用户会话ID（SID||','||SERIAL#）
	 * @param userName
	 * @return
	 */
	List<String> querySessionByUser(String userName);
	
	/**
	 * 关闭用户的客户端会话
	 * @param sessionId
	 */
	void killSession(String sessionId);
}
